home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].zip
/
MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].adf
/
PROGRAMS
/
jukebox
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1987-04-21
|
2KB
|
105 lines
REM Jukebox by Ken Jones
DEFINT a-z
GOSUB init
GOSUB notes
sel: GOSUB selection
ON q GOSUB mary,silent,william,america,god
GOSUB song
STOP
song:
READ song$
IF song$="*" THEN sel
FOR i=1 TO LEN(song$) STEP 2
offset=INSTR(n$,MID$(song$,i,1))
IF MID$(song$,i+1,1)="S" THEN D=16 : GOTO SK
D=VAL(MID$(song$,i+1,1))
SK: IF offset<4 THEN n=(offset-1)*2+1
IF offset>3 AND offset<8 THEN n=(offset-1)*2
IF MID$(song$,i+2,1)="#" THEN n=n+1
IF MID$(song$,i+2,1)="-" THEN n=n-1
IF offset=10 THEN n=13
IF offset=11 THEN o=D : GOTO jp
IF offset=8 OR offset=9 THEN jp
DUR=tempo*4/D
GOSUB playsound
jp: NEXT i
GOTO song
loop: GOTO loop
playsound:
SOUND note(o,n),DUR,255,0
RETURN
mary: RESTORE tune1 : tempo=10.42 : REM quarter beat
RETURN
silent: RESTORE tune2 : tempo=18.75
RETURN
william: RESTORE tune3 : tempo=9.38
RETURN
america: RESTORE tune4 : tempo=10.42
RETURN
god: RESTORE tune5: tempo=10.42
RETURN
selection:
COLOR 6,0 : CLS
LOCATE 1,31 : PRINT "JUKEBOX SELECTION"
LOCATE 4,30 : PRINT "1- mary had a little lamb"
LOCATE 5,30 : PRINT "2- silent night"
LOCATE 6,30 : PRINT "3- william tell"
LOCATE 7,30 : PRINT "4- america the beautiful"
LOCATE 8,30 : PRINT "5- god save the queen"
COLOR 3 : PRINT "tune number >>>"
stay: q$=INKEY$ : IF q$="" THEN stay
q=VAL(q$) : IF q<1 OR q>5 THEN stay
RETURN
notes: beginnote=65.405
FOR n=1 TO 12
note=beginnote
FOR o=1 TO 7
note(o,n)=note
note=note*2
NEXT o
beginnote=beginnote*(2^(1/12))
NEXT n
FOR o=1 TO 7
note (o,13)=32767
NEXT o
RETURN
init: DIM note(7,13)
SCREEN 1,640,200,3,2
WINDOW 2,"JUKEBOX",(0,0)-(607,185),15,1
WAVE 0,SIN
WAVE 1,SIN
n$="CDEFGAB#-PO) "
RETURN
tune1: DATA "O3G8F8E8- F8G8G8G8P8"
DATA "F8F8F4G8B8- B4- G8F8E8- F8G8"
DATA "G8G8G8F8F8G8F8E8- "
DATA "*"
tune2: DATA "O3F8GSF8D4F8GSF8D4"
DATA "O4C4C8O3A4B4- B8- F4"
DATA "G4G8B8- ASG8F8GSF8D4"
DATA "*"
tune3: DATA "O3DSDSDSPSDSDSDSPSDSDS"
DATA "G8A8B8DSDSDSPSDSDSDSPS"
DATA "BSBSA8G8- D8DSDSPSDSDSDS"
DATA "PSDSDSG8A8B8PSGSO4D4P8O3"
DATA "G8B8G8"
DATA "*"
tune4: DATA "O4G4G4E8E4G4G4D8D4E4F4G4"
DATA "A4B4G2G4G4E8E4G4G4D8D4O4"
DATA "D4C4# D4E4O3A4O4D2O3G4O4E4"
DATA "E8D4C4C4O3B8B4O4C4D4O3B4A4"
DATA "G4O4C2"
DATA "*"
tune5: DATA "O4G4G4A4F4# G8A4B4B4O4C4O3B4"
DATA "A8G4A4G4F4# O4D4D4D4D4C8O3"
DATA "B4O4C4C4C4C4O3B8A4B4O4C8O3"
DATA "B8A8G8B4O4C8D4E8C8O3B4A4G2"
DATA "*"